/*
 * Copyright (C) 2010 TopCoder Inc., All Rights Reserved.
 */
package com.hercules.xre.protocol.testing;

import com.topcoder.util.errorhandling.BaseCriticalException;
import com.topcoder.util.errorhandling.ExceptionData;


/**
 * <p>
 * This exception is thrown by the ProtocolTestingConnectionManager if there are any
 * problems during setting the callback or during the handling of the commands.
 * It extends BaseCriticalException.
 * </p>
 *
 * <p>
 * <strong>Thread-safety:</strong> This class is not thread safe as its base class is not.
 * </p>
 *
 * @author TCSDESIGNER, TCSDEVELOPER
 * @version 1.0
 */
public class ProtocolTestingConnectionManagerException extends BaseCriticalException {
    /**
     * <p>
     * The generated serialVersionUID.
     * </p>
     */
    private static final long serialVersionUID = -7049924361244330015L;

    /**
     * <p>
     * Message-only constructor, initializes a new exception with the given message.
     * </p>
     *
     * @param message Useful message containing a description of why the exception was thrown - may be null.
     */
    public ProtocolTestingConnectionManagerException(String message) {
        super(message);
    }

    /**
     * <p>
     * Constructor which takes a message and a cause detailing why the exception occurs.
     * </p>
     *
     * @param message Useful message containing a description of why the exception was thrown - may be null.
     * @param cause The initial throwable reason which triggered this exception to be thrown - may be null.
     */
    public ProtocolTestingConnectionManagerException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * <p>
     * Constructs the exception taking both a message and the additional data to attach to the exception.
     * </p>
     *
     * @param message Useful message containing a description of why the exception was thrown - may be null.
     * @param data The additional data to attach to the exception - if this is null, a new ExceptionData() is used
     *        instead.
     */
    public ProtocolTestingConnectionManagerException(String message, ExceptionData data) {
        super(message, data);
    }

    /**
     * <p>
     * Constructor which takes a message and a cause detailing why the exception occurs.
     * </p>
     *
     * @param message Useful message containing a description of why the exception was thrown - may be null.
     * @param cause The initial throwable reason which triggered this exception to be thrown - may be null.
     * @param data The additional data to attach to the exception - if this is null, a new ExceptionData() is used
     *        instead.
     */
    public ProtocolTestingConnectionManagerException(String message, Throwable cause, ExceptionData data) {
        super(message, cause, data);
    }
}
